#pragma once

class IBaseState
{
private:
	bool m_bIsStateActive = true;
protected:
	
public:
	IBaseState(){}
	//Overwritten Functions
	virtual ~IBaseState() = 0{};
	virtual void Update(float fDT) = 0;
	virtual void Exit() = 0;
	virtual void Enter() = 0;
	virtual void Initialize() = 0;
	virtual bool Input() = 0;
	//Accessors 
	bool GetIfStateIsActive() { return m_bIsStateActive; }
	//Mutators
	void SetIfStateIsActive(bool _activeFlag) { m_bIsStateActive = _activeFlag; }
};